Valkey: Exemple : Utiliser la recherche Valkey en Python

Cette documentation fait partie du guide Recherche et JSON. Consultez le guide complet ici : Stocker et interroger des documents JSON avec le module de recherche Valkey.

👋 Bienvenue dans la documentation Stackhero !

Stackhero propose une solution Valkey cloud clé en main qui offre de nombreux avantages, dont :

  • Interface web Valkey Admin incluse.
  • Taille et transferts de messages illimités.
  • Mises à jour faciles en un seul clic.
  • Performance optimale et sécurité avancée grâce à une infrastructure privée et dédiée.

Gagnez du temps et simplifiez-vous la vie : il ne vous faut que 5 minutes pour essayer l’hébergement Valkey cloud de Stackhero !

Vous pouvez utiliser le client redis-py pour exploiter les fonctionnalités de recherche de Valkey :

import os
import redis
from redis.commands.search.field import TextField, TagField, NumericField
from redis.commands.search.index_definition import IndexDefinition, IndexType
from redis.commands.search.query import Query

r = redis.from_url(os.environ['STACKHERO_VALKEY_URL_TLS'], decode_responses=True)

# Créez l’index une seule fois au démarrage
try:
    r.ft('productsIndex').create_index(
        (TextField('name'), TagField('brand'), NumericField('price')),
        definition=IndexDefinition(prefix=['product:'], index_type=IndexType.HASH),
    )
except redis.ResponseError as error:
    if 'Index already exists' not in str(error):
        raise

r.hset('product:1', mapping={'name': 'Espresso machine', 'brand': 'Bianca', 'price': 459})

results = r.ft('productsIndex').search(Query('@brand:{Bianca} @price:[0 500]'))
print(results.total, results.docs)